package com.exam.mapper;

import java.util.List;
import java.util.Map;

import com.exam.pojo.Schedule;

/**
 * @author 郭荣锋
 * 考试安排mapper
 */
public interface ScheduleMapper {

	/**
	 * 判断考试安排是否存在
	 * @param schedule 考试安排对象
	 * @return 考试安排对象
	 */
	Schedule scheduleIsExist(Schedule schedule);
	
	/**
	 * 添加考试安排
	 *  @param schedule 考试安排对象
	 */
	void addSchedule(Schedule schedule);
	
	/**
	 * 考试之前 
	 */
	void beforeExam();
	
	/**
	 * 开始考试
	 */
	void exam();
	
	/**
	 * 考试之后
	 */
	void afterExam();

	/**
	 * 通过不同条件获取考试安排列表
	 * @param map 必填：start 起始位置 offset 偏移量  可选：majorId 专业编号，classesId 班级编号，subjectId 学科编号,state 状态
	 * @return 考试安排列表
	 */
	List<Schedule> getSchedule(Map<String, Object> map);

	/**
	 * 获取总记录数
	 * @param map 必填：start 起始位置 offset 偏移量  可选：majorId 专业编号，classesId 班级编号，subjectId 学科编号,state 状态
	 * @return 总记录数
	 */
	Integer getTotalCount(Map<String, Object> map);

	/**
	 * 删除考试安排
	 * @param scheduleId 考试安排编号
	 */
	void deleteSchedule(Integer scheduleId);
	
	/**
	 * 通过考试安排编号获取考试安排对象
	 * @param scheduleId 考试安排编号
	 * @return 考试安排对象
	 */
	Schedule getScheduleById(Integer scheduleId);

	/**
	 * 通过班级ID来获得某个班级所有的考试
	 * @param classesId 班级ID
	 * @return 考试安排对象列表
	 * */
	List<Schedule> getScheduleByClassesId(Integer classesId);

}
